package gpar.ep;

import gpar.*;

public class EvolutionaryProcess 
{
    private Program program;
    private PopulationManager[] populationManagers;

       
    public EvolutionaryProcess(Program program)
    {
        this.program = program;
    
        populationManagers = new PopulationManager[1]; 
        populationManagers[0] = (PopulationManager) new ShootingManager(this); 
    }


    public void run ()
    {
        // evaluate 
        for (PopulationManager populationManager : populationManagers)
            populationManager.evaluatePopulation();
        // mutate, 
        for (PopulationManager populationManager : populationManagers)
            populationManager.mutatePopulation();


    }

    // {{{ public properties


    public Program getProgram()
    {
        return program;
    }
    
    // }}}

}
